package com.tjetc._3final;

import java.util.Calendar;

public class _2FinalDetail {
    public static void main(String[] args) {
        /*
            final细节：
            1.final修饰的属性一般称为常量 所以命名方式 需要用 全部大写 单词之间使用下划线（_）
            2.被final修饰的类是不能被继承的但是可以进行实例化
            3.如果类不是final类，但是含有final⽅法，则该⽅法虽然不能重写，但是可以被继承。



         */

//        A a = new A();
//        C c = new C();
//        c.f();

        System.out.println(B.A);
    }
}

final class A {
    // 定义常量使用全大写
    final int A = 1;
    final int REQUEST_SUCCESS = 1;
    // 静态常量和常量的区别：
    final int B;
    static final int C;
    static  {
        C = 1;
    }
    // 如何理解为什么final不能修饰构造器？本身构造方法就不能被继承或重写所以用final修饰就无意义
    A() {
        B = 1;
    }
}

class B {
    static final int A = 1;
    static {
        System.out.println("A");
    }
    final void f(){}
}

class C extends B {

}


